<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <style>
        .box {
            width: 300px;
            height: 300px;
            background-color: #f00;
        }
    </style>
</head>
<body>
    <div id="app">
        <div @click.self="boxClick" class="box">
            <!-- 既想阻止默认行为，又想阻止冒泡 -->
            <!-- 可以连着写,没有顺序之分，只要写上就有效果 -->
            <a @click.stop.prevent="fn1" href="http://www.itcast.cn">点我跳转</a>
            <button @click.stop="fn2">点我</button>

            <!-- 是指整个事件都只有一次有效，包括你写的阻止冒泡 -->
            <button @click.stop.once="fn3">点我啊-只有一次有效哦！</button>
            <!-- 如果有好多按钮都有事件，都会冒泡到box，如果不想冒泡就得一个一个加stop -->
            <button @click="fn2">按钮点我</button>
        </div>
    </div>

    <script src="./vue.js"></script>
    <script>
        new Vue({
            el: '#app',
            methods: {
                boxClick() {
                    alert('box被点了')
                },
                fn1 () {
                    alert(1)
                },
                fn2 () {
                    alert('按钮被点了')
                },
                fn3 () {
                    alert('第二个按钮被点了')
                }
            }
        })
    </script>
</body>
</html>